![]() Verfahren und Vorrichtungen zum Zugriff auf verteilte Daten für Prozesssteuersysteme
专利摘要:
Verfahren und Vorrichtungen zum Zugriff auf eine Datenbank, zu der ein Prozesssteuersystem gehört, wobei eine Anforderung von Informationen von einer Clientanwendung zu einem Zwischendatenserverprozess gesendet wird und festgestellt wird, ob die Informationen in einer Datenquelle gespeichert sind, die zu dem Zwischendatenserverprozess gehört. Die Verfahren und die Vorrichtungen senden ferner eine Anforderung der Informationen von dem Zwischendatenserverprozess zu einem weiteren Prozess, wenn die Informationen nicht innerhalb der Datenquelle gespeichert sind, und greifen auf die Datenbank zu, um die Informationen auszulesen, nachdem der andere Prozess die Anforderung der Informationen empfangen hat. 公开号:DE102004010180A1 申请号:DE102004010180 申请日:2004-03-02 公开日:2004-09-16 发明作者:Teresa Austin Chatkoff;Stephen Austin Gilbert;Michael Lutterworth Lucas;Mark J. Round Rock Nixon 申请人:Fisher Rosemount Systems Inc; IPC主号:G06F15-16
专利说明:
[0001] Die vorliegende Erfindung betrifftallgemein Prozesssteuersysteme und insbesondere Verfahren und Vorrichtungenzum Zugriff auf verteilte Daten für Prozesssteuersysteme. [0002] Prozesssteuersysteme, wie sie beispielsweisebei chemischen, Erdölverarbeitenden oder anderen Prozessen verwendet werden, enthaltentypischerweise eine oder mehrere zentrale Prozesssteuereinrichtungen,die überanaloge, digitale oder kombinierte analog/digitale Busleitungenin Kommunikationsverbindung mit mindestens einem Hauptrechner odereiner Bedienerworkstation stehen. Die Anlageneinrichtungen, beidenen es sich beispielsweise um Ventile, Ventilpositioniereinrichtungen,Schalter und Übertragungseinrichtungen(beispielsweise Temperatur-, Druck- und Durchflussmengensensoren)handeln kann, führenFunktionen innerhalb des Prozesses durch, wie etwa das Öffnen oderSchließenvon Ventilen und das Messen von Prozessparametern. Die ProzesssteuereinrichtungempfängtSignale, die von den Anlageneinrichtungen durchgeführte Prozessmessungenund/oder andere, die Anlageneinrichtungen betreffenden Informationenanzeigen, verwendet diese Informationen, um eine Steuerroutine umzusetzen,und erzeugt dann Steuersignale, die über die Busleitungen oder andereKommunikationsleitungen an die Anlageneinrichtungen gesendet werden,um den Prozessablauf zu regeln bzw. zu steuern. Informationen vonden Anlageneinrichtungen und den Steuereinrichtungen können eineroder mehreren Anwendungen zur Verfügung gestellt werden, die vonder Bedienerworkstation ausgeführt werden,um eine Bedienungsperson in die Lage zu versetzen, gewünschte prozessbezogeneFunktionen durchzuführen,wie etwa den gegenwärtigen Prozesszustandzu betrachten, den Prozessablauf zu modifizieren etc. [0003] Ein Prozesssteuersystem arbeitettypischerweise in einem Unternehmen, das mehrere Prozesssteueranlagen,Komponenten und/oder Dienstleistungslieferanten und Kunden enthaltenkann, die alle überein großesgeografisches Gebiet oder in einigen Fällen über die ganze Welt verteiltsein können.Die Prozesssteueranlagen, Lieferanten und Kunden können miteinanderunter Verwendung einer Vielzahl von Kommunikationsmedien und -technikenoder -plattformen kommunizieren, wie etwa das Internet, Satellitenverbindungen,drahtlose terrestrische Übertragungen,Telefonleitungen etc. Selbstverständlich wurde das Internet zueiner bevorzugten Kommunikationsplattform für viele Unternehmen, da eseine bestehende Kommunikationsinfrastruktur bietet und damit dieKosten der Kommunikationsinfrastruktur für ein Unternehmen minimiertbeziehungsweise reduziert. Zusätzlichsind die zur Kommunikation von Informationen über das Internet verwendetenTechniken bekannt, stabil, sicher etc. [0004] Jede Prozesssteueranlage innerhalbeines Unternehmens kann ein oder mehrere Prozesssteuersysteme sowieeine Reihe von weiteren prozessbezogenen oder Informationstechnologiesystemen enthalten,die fürdie Unterstützungoder Aufrechterhaltung des gesamten Betriebes des Prozesssteuersystemserforderlich sind oder dieses ergänzen. Allgemein können dieInformationstechnologiesysteme, die zu einer Prozesssteueranlagegehören,Herstellungsdurchführungssysteme,wie z. B. ein Wartungsverwaltungssystem enthalten, und können ferner Unternehmensressourcenplanungssystemeenthalten, beispielsweise Planungs-, Buchhaltungs- und Beschaffungssysteme.Obgleich diese Informationstechnologiesysteme physisch innerhalboder nahe bei einer Anlage angeordnet sein können, können in einigen Fällen einigewenige oder möglicherweiseall diese Systeme in Bezug auf die Anlage entfernt angeordnet seinund unter Verwendung des Internet oder einer beliebigen anderengeeigneten Kommunikationsverbindung, die jede gewünschte Kombination vondrahtlosen und/oder drahtgebundenen Kommunikationsmedien und -technikenverwendet, mit der Anlage kommunizieren. [0005] Jeder Prozesssteueranlage innerhalbeines Unternehmens kann ferner Benutzerinteraktive Anwendungen enthalten,die auf einem Server oder einer Workstation ausgeführt werdenkönnen,die mit einem oder mehreren Servern, Workstations oder anderen Computernin Kommunikationsverbindung steht, welche die Aktivitäten desProzesssteuersystems innerhalb der Anlage koordinieren oder ausführen. DerartigeBenutzer-interaktive Anwendungen können Kampagnenverwaltungsfunktionen,Verwaltungsfunktionen fürStammdaten, Betriebsmittelverwaltungsfunktionen, Stapelverwaltungsfunktionen etc.ausführen.Zusätzlichkann jedes der Prozesssteuersysteme Prozessverwaltungsanwendungen enthalten,die beispielsweise die Kommunikation von Alarm- und/oder anderenProzessereignissen verwalten und Informationen darüber bereitstellenkönnen,Informationen oder Daten bezüglichdes Prozesses oder der Prozesse bereitstellen, die von der Prozesssteueranlagedurchgeführtwerden, Informationen oder Daten bezüglich des Zustands oder der Leistungvon zu der Prozesssteueranlage gehörenden Ausrüstungsgeräten bereitstellen, etc. InsbesonderekönnenProzessverwaltungsanwendungen Vibrationsüberwachungsanwendungen, Echtzeitoptimierungsanwendungen,Expertensystemanwendungen, vorhersagende Wartungsanwendungen, Regelkreisüberwachungsanwendungenoder beliebige andere Anwendungen enthalten, wie sich auf die Steuerung, Überwachungund/oder Aufrechterhaltung eines Prozesssteuersystems bzw. einer-anlage beziehen. [0006] Ferner können eine Prozesssteueranlage oderein Unternehmen eine oder mehrere Kommunikationsanwendungen enthalten,die dazu verwendet werden können,Informationen von dem Prozesssteuersystem oder der -anlage über eineVielzahl von unterschiedlichen Kommunikationsmedien und -plattformenzu einem Benutzer zu kommunizieren. Diese Kommunikationsanwendungenkönnenbeispielsweise E-Mail-Anwendungen,Personenrufanwendungen, Sprachmitteilungsanwendungen, DateibasierendeAnwendungen etc. einschließen,die alle Informationen überdrahtlose oder drahtgebundene Medien zu einem Desktop-Computer,einem Laptop-Computer, einem Personal Data Assistant, einem Mobiltelefonoder einem Personenrufgerät oderjeder anderen Art von Geräte-oder Hardwareplattform senden können. [0007] Allgemein ausgedrückt ist es äußerst schwierig, die Kommunikationzwischen Informationstechnologiesystemen, Benutzer-interaktivenAnwendungen, Prozessverwaltungsanwendungen und Kommunikationsanwendungeninnerhalb eines Unternehmens zu ermöglichen und zu integrieren,da diese Systeme und Anwendungen typischerweise über das gesamte Unternehmenverteilt sind und in einigen Fällengeografisch weit verstreut sind. Ferner können viele der vorstehend genanntenSysteme und Anwendungen überhandgehaltene oder portable Hardwareplattformen, wie z. B. Laptop-Computer, Mobiltelefone,Personenrufgeräte,Personal Data Assistants etc. ausgeführt werden, die vielfach sokonfiguriert sind, dass sie eine Betriebsumgebung schaffen, diezur Ausführungvon komplizierten Client-Anwendungenoder Software geeignet ist, darunter beispielsweise Webbrowser oderdergleichen, die Kommunikationsfunktionen ausführen. [0008] Zusätzlich erfordern diese Systemeund Anwendungen typischerweise die Entwicklung einer kundeneigenenKommunikationsschnittstelle oder eines Softwaretreibers, der dieunterschiedlichen Systeme und Anwendungen in die Lage versetzt,miteinander zu kommunizieren. Das hat zur Folge, dass dann, wennsich ein System, eine Anwendung, eine Einrichtung oder eine Komponenteinnerhalb des Unternehmens auf Grund beispielsweise eines Firmware-Upgrades,Geräteaustauschesetc. ändert, auchdie kundeneigene Kommunikationsschnittstelle bzw. der Kommunikationstreiberfür diesesSystem, die Einrichtung oder die Komponente möglicherweise geändert werdenmuss. Offensichtlich führtdie großeAnzahl der erforderlichen kundeneigenen Treiber zu einem beträchtlichenAusmaß vonzeitaufwendiger Treiberwartung, was zu hohen Unternehmenswartungskostenführt.Ferner erfordert das Hinzufügeneines Systems oder einer Anwendung zu einem Unternehmen oder einerProzesssteueranlage oftmals einen enormen Programmieraufwand, daeine Vielzahl von kundeneigenen Kommunikationstreibern oder Schnittstellenentwickelt werden müssen, umdas neue System oder die Anwendung in die Lage zu versetzen, mitden anderen Systemen und Anwendungen innerhalb des Unternehmenszu kommunizieren. Derartige kundeneigene Kommunikationsschnittstellennutzende Systeme sind somit nicht sehr flexibel oder skalierbarund erleichtern beispielsweise nicht die Integration eines Prozesssteuersystemsmit anderen Systemen und Anwendungen, die von dem Hersteller desProzesssteuersystems und/oder durch einen Dritthersteller oder Entwickler bereitgestelltwerden können. [0009] JüngereEntwicklungen, die auf die Verbesserung der Flexibilität und derSkalierbarkeit von Systemen innerhalb von Unternehmen gerichtetsind, sind von der Entwicklung und dem Ausbau von verbesserten Betriebssystemen,wie z. B. Windows XP®, Microsoft.NETTM etc., und Verbesserungen von Kommunikationsprotokollen,wie z. B. Ethernet, Voice over Internet Protokoll (IP), StreamingVideo etc. begleitet. Zusätzlichwurden verbesserte Informations- oder Datenübertragungseinrichtungen undzentrale Datenspeichereinrichtungen und -techniken, wie z. B. dievon Extensible Markup Language (XML), Simple Object Access Protocol(SOAP), Universal Description, Discovery and Integration (UDDI)etc. geschaffenen, verbesserte Orchestrierungssysteme oder Server,wie z. B. Biztalk®, verbesserte Programmiersprachen,die unabhängigvon den ausführendenPlattformen sind, wie z.B. Java, und eine Reihe von weiteren verbessertenKommunikations- und/oder Datenverwaltungs-Toolprogrammen, -standards, -protokollen,-Programmiersprachen etc. entwickelt. [0010] Währendes durch viele der jüngerenEntwicklungen einfacher wurde, eine Vielzahl von Systemen, die einUnternehmen aufweist, so zu konfigurieren, dass sie miteinanderkommunizieren, hat sich die gesamte Systemarchitektur, innerhalbwelcher diese Systeme zusammenwirken, gegenüber den bekannten Client-Server-Architekturen nichtwesentlich geändert.Bei vielen bekannten Client-Server-Architekturen senden Clients erfassteDaten oder Informationen zu einem Server und empfangen verarbeiteteResultate von dem Server, die angezeigt und/oder anderweitig voneinem Systembediener verwendet werden können. Zusätzlich enthält und implementiert oder führt derServer typischerweise Geschäfts-oder Datenbankregeln fürden Betrieb oder von einem oder mehreren Clients empfangene Prozessdatenaus. [0011] Unglücklicherweise ist die Verwendungvon bekannten Client-Server-Architekturen innerhalb eines Unternehmens,einer Prozesssteueranlage oder eines Prozesssteuersystems, das eineVielzahl von verteilten Systemen hat, die über ein oder mehrere Kommunikationsnetzekommunizieren, relativ ineffizient, da der Server typischerweisedie Prozessablauflogik, Datenbankregeln und/oder andere datenintensiveVerarbeitungsvorgängeenthältund ausführt. AlsResultat müssendie Clients sich typischerweise mit einer großen Zahl von umlaufender Kommunikationmit dem Server beschäftigen(d. h. Anfragen an den Server nach Informationen oder Daten unddie Ausführungvon Prozesslogik senden und Antwortkommunikationsvorgänge vondem Server empfangen). Eine großeAnzahl von Umlaufkommunikationsvorgängen innerhalb eines auf bekanntenClient-Server-Architekturen basierenden verteilten Systems kannein beträchtlichesMaß derbegrenzten und damit wertvollem Kommunikationsnetz- oder Kanalbandbreiteeinnehmen. Beispielsweise ist im Fall von drahtlosen Kommunikationsverbindungen(beispielsweise zellulärenVerbindungen und Satellitenverbindungen) die Kanalbandbreite relativteuer und somit sind die Kosten pro Paket, Bit, etc. relativ hoch. Zusätzlich kanndie Kommunikationskanallatenz (d.h. die Umlaufübertragungszeit) zu beträchtlichen Zeitverzögerungenführen,die fürviele prozessorientierte Funktionen, insbesondere Echtzeit-Prozesssteuerfunktionen,nicht akzeptabel sein können. [0012] In jedem Fall werden die Ineffizienzoder die Schwierigkeiten der Kommunikation auf Grund von Bandbreitenbeschränkungen,Kosten, Kommunikationskanallatenz etc. in Situationen verstärkt, inwelchen Clients an prozessorientierten Funktionen beteiligt sindund/oder wenn Server prozessorientierte Prozesslogik implementieren,da diese prozessorientierten Funktionen und vom Server ausgeführte ProzesslogikhäufigeDatenanfragen und Ausführungen vonRegeln erfordern und somit häufigeUmlaufkommunikationsvorgänge.Gleichermaßensind Clients und/oder Server, die an Verarbeitungsaktivitäten auf Unternehmensebene,wie beispielsweise Optimierungsaktivitäten des Unternehmens, teilnehmen,typischerweise ebenfalls an der häufigen Koordination und Kommunikationvon großenInformations- oder Datenmengen beteiligt. Somit verstärken derartige Aktivitäten aufUnternehmensebene in ähnlicherWeise die Schwierigkeiten und Schwächen der Kommunikation beibekannten Client-Server-Architekturen (beispielsweise beschränkte Bandbreite,hohe Datenübertragungskosten,Kommunikationskanallatenz etc.). [0013] Um die an Kommunikationskanäle innerhalb einesProzesssteuersystems, einer Anlage und/oder eines Unternehmens gestelltenAnforderungen zu reduzieren (sowie die damit verbundenen Implementierungs-und Wartungskosten), haben einige Systeme bekannte oder herkömmlicheClient-Server-Architekturen beibehalten, aber haben beträchtlicheMengen von Daten, Prozesslogik, Datenbankregelausführung undDatenverarbeitungslogik von den Servern zu den Clients verschoben.Allgemein werden alle Informationen oder Daten und Regeln, die potenziellvon den Clients verwendet werden könnten, zu einer mit diesenClients verbundenen lokalen Speichereinrichtung verlagert. Auf dieseWeise könnendie Clients lokal auf benötigteInformationen, Daten, Regeln etc. zugreifen, um ihre Aktivitäten auszuführen, wodurch dasAusmaß derdafür erforderlichenNetzkommunikation reduziert oder minimiert wird. [0014] Unglücklicherweise führt dasVerschieben derartiger beträchtlicherMengen von Daten, Regelausführungenund anderer Verarbeitungsverantwortlichkeiten in die Clientsystemehinab zu "umfangreichen" Clients, die schwierigzu installieren und zu verwalten sind. Ferner führt ein auf der Verwendung derartigerumfangreicher Clients basierendes System innerhalb eines gemäß bekanntenClient-Server-Architekturen konfigurierten Systems zu Systemen,die relativ unflexibel sind und nicht ohne weiteres skalierbar sind.Insbesondere stützensich viele Systeme, die vorhandene Client-Server-Architekturen nutzen,sehr stark auf Ad-hoc-Clientlogik und Datentransportformate. Mitanderen Worten kann jede der Clientanwendungen ihre eigenen Versionenvon Regeln und Datenbankstrukturen implementieren. Als Resultatkann eine einfache Datenbankänderung odereine Änderungan einer von mehr als einem Client benutzten Regel eine unabhängige undzeitaufwändigeRekonfiguration einer großenAnzahl von Clientanwendungen erfordern, die möglicherweise die Datenbankund/oder Regel verwenden könnten. Dasferner die Clients auf unterschiedlichen Systemtypen basieren können, diezur verschiedenen Herstellern, Entwicklungsteams etc. gehören können, kanndie spezielle Art und Weise, in der eine gegebene Regel implementiertwerden muss, von Client zu Client beträchtlich variieren, wodurchSystemwartungsaktivitäten(beispielsweise Modifikation oder Verbesserungen) sehr kompliziertund teuer werden. Ferner kann das Hinzufügen eines Clients oder eines Serverszu einem derartigen vorhandenen Systemen eine zeitaufwendige Konfigurationdes Clients erfordern, um es zu ermöglichen, dass der Client eine odermehrere Regeln in gewünschterWeise ausführt undum andere Clients und/oder Server innerhalb des Systems in die Lagezu versetzen, mit dem hinzugefügtenClient oder Server zusammenzuarbeiten. Unglücklicherweise kann der für bereitsexistierende Clientanwendungen entwickelte Ad-hoc-Code nicht zur Verwendungmit neuen Clientanwendungen adaptiert (d.h. wiederverwendet) werden.Als Resultat führtdas Hinzufügeneiner Clientanwendung zu einem derartigen System typischerweisezur Entwicklung von zusätzlicherneuer Ad-hoc-Software oder -Code. [0015] Es ist die Aufgabe der Erfindung,den vorstehend beschriebenen Problemen, die beim Stand der Technikauftreten, abzuhelfen. [0016] Die Lösung der Aufgabe ergibt sichaus den Patentansprüchen.Unteransprüchebeziehen sich auf bevorzugte Ausführungsformen der Erfindung, wobeiauch andere Kombinationen von Merkmalen als die beanspruchten möglich sind. [0017] Gemäß einem Aspekt senden Systemeund Verfahren zum Zugriff auf eine zu einem ProzesssteuersystemgehörendeDatenbank eine Informationsabfrage von einer Clientanwendung aneinen Zwischendatenserverprozess und stellen fest, ob die Informationin einer zu dem Zwischendatenserverprozess gehörenden Datenquelle gespeichertist. Die aufgezeigten Systeme und Verfahren können auch eine Informationsabfragevon dem Zwischendatenserverprozess zu einem anderen Prozess senden, wenndie Information nicht in der Datenquelle gespeichert ist, und können aufdie Datenbank zugreifen, um die Information abzurufen, nachdem derandere Prozess die Informationsabfrage empfängt. [0018] Gemäß einem weiteren Aspekt enthält ein Prozesssteuersystemeine Vielzahl von in Kommunikationsverbindung stehenden Zwischendatenservern,eine Vielzahl von Clientanwendungen, die in Kommunikationsverbindungmit einem oder mit mehreren der Zwischendatenserver stehen können, und eineInformationen enthaltende Datenbank, die zumindest Daten und Regelnenthält,die zu dem Prozesssteuersystem gehören. Die Zwischendatenserversind so ausgelegt, dass sie in jeweiligen lokalen Datenquellen eineTeilmenge der Informationen in Übereinstimmungmit den Informationsbedürfnissen mindestenseiniger der Clientanwendungen in Zusammenwirkung auslesen und speichern. [0019] Nachfolgend wird die Erfindung unterBezug auf die Zeichnung im Detail beschrieben. [0020] 1 istein Blockdiagramm eines Abschnitts eines Beispielunternehmens, indem die hierin beschriebene Vorrichtung und Verfahren umgesetztwerden können. [0021] 2 isteine schematische Darstellung eines Beispieldatenbankschemas, dasauf einer bekannten Objekthierarchie basiert und das zur Umsetzungder aufgezeigten Vorrichtung und der Verfahren verwendet werdenkann. [0022] 3 isteine schematische Darstellung einer Beispielobjektkonfiguration,die mit der aufgezeigten Vorrichtung und den Verfahren verwendet werdenkann. [0023] 4 istein Blockdiagramm, das ein Beispielsystem darstellt, das eine Vielzahlvon Zwischendatenservern zeigt, die zum Zugriff auf eine Datenbankzusammenwirken. [0024] 5 isteine detaillierte schematische Ansicht, die ein Beispiel einer Artund Weise darstellt, in der Clientanwendungen auf Informationenoder Daten zugreifen können,die innerhalb einer Datenquelle gespeichert sind, die zu einem Zwischendatenservergehört. [0025] 6 istein Blockdiagramm eines Beispielsystems, das eine Vielzahl von Verarbeitungssystemenhat, die Zwischendatenserver zum Zugriff auf eine Datenbank nutzen. [0026] 1 istein Blockdiagramm eines Beispielunternehmens 10, das diehierin beschriebene verteilte Datenvorrichtung und die Verfahrenverwenden kann. Wie 1 zeigt,enthältdas Unternehmen 10 ein Prozesssteuersystem 12 miteiner Steuereinrichtung 14, einer Bedienungsstationen 16 undWorkstations 18 und 20, die alle über einenBus oder ein lokales Datennetz (LAN) 22 in Kommunikationsverbindungstehen können,was allgemein als ein Anwendungssteuernetz (ACN) bezeichnet wird.Die Workstations 18 und 20 können als Anwendungsstationen konfiguriertsein, die eine oder mehrere Informationstechnikanwendungen, Benutzer-interaktiveAnwendungen und/oder Kommunikationsanwendungen ausführen. Beispielsweisekann die Anwendungsstation 18 so konfiguriert sein, dasssie hauptsächlich aufdie Prozesssteuerung bezogene Anwendungen ausführt, wohingegen die Anwendungsstation 20 so konfiguriertsein kann, dass sie hauptsächlichKommunikationsanwendungen ausführt,die das Prozesssteuersystem 12 in die Lage versetzen, mitanderen Vorrichtungen oder Systemen unter Verwendung von beliebigengewünschtenKommunikationsmedien (beispielsweise drahtlos, drahtgebunden etc.)und Protokollen (beispielsweise HTTP, SOAP etc.) zu kommunizieren.Selbstverständlichkönnendie Bedienungsstationen 16 und die Workstations 18 und 20 unterVerwendung einer oder mehrerer Workstations oder eines beliebigenanderen geeigneten Computersystems oder Verarbeitungssystems implementiertwerden. Beispielsweise könntendie Bedienungsstationen und/oder Workstations 18 und 20 unterVerwendung von Einzelprozessor-Personalcomputern, Einzel- oder Multiprozessor-Workstationsetc. implementiert sein. [0027] Das LAN 22 kann unter Verwendungjedes gewünschtenKommunikationsmediums und -protokolls implementiert sein. Beispielsweisekann das LAN 22 auf einem drahtgebundenen oder drahtlosen Ethernet-Kommunikationsschemabasieren, das bekannt ist und hier somit nicht im Detail beschrieben wird.Wie jedoch vom Durchschnittsfachmann ohne weiteres zu erkennen ist,könntejedes andere geeignete Kommunikationsmedium und -protokoll verwendetwerden. Obgleich ferner nur ein einzelnes LAN gezeigt ist, können mehrals ein LAN und geeignete Kommunikationshardware innerhalb der Bedienungsstationen 16 undder Workstations 18 und 20 verwendet werden, umredundante Kommunikationswege zwischen diesen Systemen zu schaffen.Die Steuereinrichtung 14 kann mit einer Vielzahl von intelligentenAnlageneinrichtungen 24, 26 und 28 über einendigitalen Datenbus 30 und eine Eingabe/Ausgabeeinrichtung(I/O) 32 verbunden sein. Die intelligenten Anlageneinrichtungen 24–28 können Fieldbus-konformeVentile, Betätigungseinrichtungen, Sensorenetc. sein, und in diesem Fall kommunizieren die intelligenten Anlageneinrichtungen 24–28 über dendigitalen Datenbus 30 unter Verwendung des bekannten Fieldbus-Protokolls.Selbstverständlichkönnenan Stelle dessen andere Arten von intelligenten Anlageneinrichtungenund Kommunikationsprotokollen verwendet werden. Beispielsweise können dieintelligenten Anlageneinrichtungen 94-28 an Stelle dessen Profibus- oderHART-konforme Einrichtungen sein, die über den Datenbus 30 unterVerwendung des bekannten Profibus- oder HART-Kommunikationsprotokollskommunizieren. Zusätzliche I/O-Einrichtungen(ähnlichder oder identisch mit der I/O-Einrichtung 32) können mitder Steuereinrichtung 14 verbunden sein, um zusätzlichenGruppen von intelligenten Anlageneinrichtungen, bei denen es sich um Fieldbus-Einrichtungen,HART-Einrichtungen etc. handeln kann, die Kommunikation mit derSteuereinrichtung 14 zu ermöglichen. [0028] Zusätzlich zu den intelligentenAnlageneinrichtungen 24–28 können eineoder mehrere nicht intelligente Anlageneinrichtungen 34 und 36 mitder Steuereinrichtung 14 in Kommunikationsverbindung stehen.Die nicht intelligenten Anlageneinrichtungen 34 und 36 können beispielsweiseherkömmliche 4–20 Milliampere(mA)- oder 0–10Volt Gleichstrom (VDC)- Einrichtungen sein, die mit der Steuereinrichtung 14 jeweils über drahtgebundeneVerbindungen 38 und 40 kommunizieren. [0029] Die Steuereinrichtung 14 kannbeispielsweise eine DeltaVTM-Steuereinrichtungsein, die von Fisher-Rosemount Systems, Inc. vertrieben wird. Es kannjedoch jede andere Steuereinrichtung an Stelle dessen verwendetwerden. Währendin 1 nur eine Steuereinrichtunggezeigt ist, könnenferner zusätzlicheSteuereinrichtungen jedes gewünschten Typsoder jeder Kombination von Typen mit dem LAN 22 verbundenwerden. In jedem Fall kann die Steuereinrichtung 14 eineoder mehrere zu dem Prozesssteuersystem 12 gehörende Prozesssteuerroutinen ausführen, dievon einem Systemtechniker oder einem anderen Systemoperator unterVerwendung der Bedienungsstation 16 erzeugt wurden unddie in die Steuereinrichtung 14 heruntergeladen und darininstanziert wurden. [0030] Wie 1 zeigt,kann das Unternehmen 10 ferner eine Workstation 42 enthalten,die übereine Kommunikationsverbindung 44, das LAN 46 unddie Workstations 18 und 20 mit dem Prozesssteuersystem 12 inKommunikationsverbindung steht. Die Workstation 42 kannso konfiguriert sein, dass sie Funktionen auf Unternehmensebeneausführt,kann zu einem anderen Prozesssteuersystem (nicht dargestellt) gehören undso konfiguriert sein, dass sie hauptsächlich Prozesssteuerungsfunktionenausführt,kann so konfiguriert sein, dass sie eine oder mehrere Kommunikationsfunktionendurchführt,etc. Des weiteren kann die Workstation 42 geografisch entferntangeordnet sein, und in diesem Fall handelt es sich bei der Kommunikationsverbindung 44 beispielsweiseum eine drahtlose Kommunikationsverbindung, ein auf dem Internetbasierendes oder ein anderes Teilnehmer-Kommunikationsnetz auf Paketbasis,Telefonleitungen (beispielsweise digitale Teilnehmerleitungen) odereine Kombination daraus. [0031] Das Beispielunternehmen 10 istvorgesehen, um einen Typ eines Systems zu erläutern, in dem die nachfolgendim Detail beschriebenen Datenverteilungsverfahren sowie die Vorrichtungin vorteilhafter Weise verwendet werden können. Die hierin beschriebeneDatenverteilungsvorrichtung sowie die Verfahren können jedochauf Wunsch in vorteilhafter Weise in anderen Systemen mit größerer odergeringerer Komplexitätals das in 1 gezeigteBeispielunternehmen und/oder in Systemen verwendet werden, die inZusammenhang mit Prozesssteuerungsaktivitäten, Unternehmensverwaltungsaktivitäten, Kommunikationsaktivitäten etc.genutzt werden. [0032] Die hierin beschriebenen Datenverteilungsvorrichtungenund die Verfahren verwenden ein hierarchisches Objekt-orientiertesDatenbankschema in Verbindung mit einer Vielzahl von miteinanderverbundenen oder in Kommunikationsverbindung stehenden Zwischendatenservern,um die Effizienz zu maximieren, mit der Clientanwendungen auf Daten und/oderRegeln zugreifen können,die in einer gemeinsamen Datenbank gespeichert sind. Genauer ausgedrückt können dieZwischendatenserver Informationen nutzen, die mit den erwartetenoder vorbestimmten Informations- oder Datenanforderungen von Clientanwendungenin Zusammenhang stehen, um selektiv Informationen oder Daten auseiner Datenbank auszulesen und diese selektiv abgerufenen Informationenoder Daten lokal zu speichern, um die Clientanwendungen in die Lagezu versetzen, rascher und effizienter auf die Daten oder Informationenzuzugreifen. [0033] Zusätzlich zu den lokal gespeichertenDaten könnendie Zwischendatenserver auch Prozess- oder Datenbankregeln nachBedarf lokal speichern und ausführen.Auf diese Weise könnendie Zwischendatenserver, wenn sie einmal mit den von den lokalenClientanwendungen benötigtenInformationen oder Daten geladen wurden, das Ausmaß der Umlaufkommunikation(und der Zeit) beträchtlichreduzieren, die zur Durchführungder Aktivitätender Clientanwendungen erforderlich sind. Mit anderen Worten speicherndie Zwischendatenserver lokal (beispielsweise durch cachen) eineausreichende Menge an Informationen und der zugehörigen Regeln.Diese Informationen und Regeln sind typischerweise eine Teilmengeder Informationen und Regeln, die aus einer Unternehmensdatenbankausgelesen werden, wodurch lokale Clientanwendungen in die Lageversetzt werden, rasch auf benötigteInformationen und Regeln zuzugreifen und eine Vielzahl von aufeinanderfolgendenOperationen durchzuführen, bevor Änderungenan die Datenbank zurückfestgeschrieben werden. Als Resultat können die Clientanwendungendas Ausmaß derDatenlatenz (auf Grund der Kommunikationskanallatenz) minimieren,die in die Ausführungvon Clientanwendungen eingeführt wird,die den Zugriff auf Informationen, Daten und/oder Regeln benötigen, dieursprünglichvon einer zentralen oder gemeinsamen Datenbank stammen (beispielsweiseeine Datenbank auf Anlagenebene oder Unternehmensebene). Die durcheine derartige Verteilung von Daten und zugehörigen Regeln gewonnenen Verarbeitungsgeschwindigkeitseffizienzensind beträchtlich,insbesondere in solchen Fällen,in denen auf den zentralen Datenverwahrungsort oder die Datenbankdurch eine großeAnzahl von Systemen zugegriffen wird, die über ein gesamtes Unternehmenverteilt sind, und in denen die Kommunikationsverbindungen zwischenden Clientanwendungen und der Datenbank stark belastet sind (d.h. nahe an oder überihrer Eigenkapazitätsind, um die von den mit den Verbindungen verbundenen Systemen angefordertenInformationen zu liefern). [0034] 2 isteine schematische Ansicht eines Beispieldatenbankschemas, das aufeiner bekannten Objekthierarchie basiert und das verwendet werden kann,um die hierin beschriebene Datenverteilungsvorrichtung und die Verfahrenzu implementieren. Allgemein ausgedrückt ist das in 2 gezeigte Beispieldatenbankschema alsein Netz von hierarchisch in Beziehung stehenden Objekten strukturiert.Mit anderen Worten ist das in 2 gezeigteDatenbankschema so strukturiert, dass es Informationen in elementarerWeise darstellt, sodass praktisch jedes Informationsstück innerhalbder Hierarchie als separates Objekt dargestellt ist. Das in 2 gezeigte spezielle Beispielist typisch fürein Schema, das verwendet werden kann, um die Steuersystemaspekteeines Prozesssteuersystems oder eines Unternehmens, wie etwa desUnternehmens 10 und des Steuersystems 12 in 1 darzustellen. Selbstverständlich ist dasDatenbankschema aus 2 nurein Beispiel und an Stelle dessen könnten viele andere Schemata verwendetwerden. Beispielsweise könnendie Implementierungen der Schemata in Abhängigkeit davon variieren, obein bestimmtes Schema währendder Laufzeit, fürOffline-Editier- oder Konfigurationsaktivitäten oder für einen anderen Zweck verwendetwerden soll. [0035] Wie die Beispielhierarchie in 2 zeigt, ist ein Standortobjekt 50 (STANDORT),das eine physische Werksanlage darstellt, die ein Teil eines Unternehmensoder ein gesamtes Unternehmen, wie etwa das in 1 gezeigte Unternehmen 10 seinkann, aus einer Vielzahl von Bereichsobjekten 52 und 54 (BEREICHA und BEREICH B) zusammengesetzt. Die Bereichsobjekte der 52 und 54 gehören zu bestimmtenphysischen Bereichen innerhalb der von dem Standortobjekt 50 dargestelltenAnlage. Beispielsweise kann das Bereichsobjekt 52 zu einembestimmten Abschnitt eines Produktionsprozesses an einem bestimmtenphysischen Ort einer Anlage gehörenund das Bereichsobjekt 54 kann zu einem anderen Abschnittdieses Produktionsprozesses (oder eines anderen Produktionsprozesses)gehören,der an einem anderen physischen Ort der von dem Standortobjekt 50 dargestelltenAnlage positioniert sein kann. [0036] Die Bereichsobjekte 52 und 54 sindaus jeweiligen Steuermodulen 56 (MOD A), 58 (MODB), 60 (MOD B) und 62 (MOD C) zusammengesetzt. Steuermoduleenthalten Steuerroutinen, die instanziert und ausgeführt werdenkönnen,um Steuerfunktionen oder Aktivitätendurchzuführen,die zu ihren jeweiligen Anlagenbereichen gehören. Genauer ausgedrückt kannjedes der Steuermodule 56–62 zueinem oder mehreren Stückender physischen Geräte oderEinrichtungen gehörenund kann somit verwendet werden, dieses Gerät oder diese Einrichtungen zu überwachenund/oder zu steuern. Obgleich die Beispielhierarchie aus 2 die Bereiche 52 und 54 jeweilsso darstellt, dass sie zwei Steuermodule haben, könnten zujedem der Bereiche 52 und 54 ein einzelnes odermehr als zwei Steuermodule gehören. [0037] Jedes der Module 56–62 kannaus weiteren Objekten und Unterobjekten zusammengesetzt sein. ZumZweck der Erörterungsind derartige Objekte und Unterobjekte nachfolgend nur in Verbindungmit dem Modul 58 (MOD B) beschrieben. Wie 2 zeigt, kann das Modul 58 miteinem oder mehreren Attributen 64 und 66 (ATTR2und ATTR1) und einem oder mehreren Funktionsblöcken 68 und 70 (BLOCK 1und BLOCK 2) in Zusammenhang stehen. Die Attribute 64 und 66 können Parametersein, wie beispielsweise Eingabevariable, Ausgabevariable oder dergleichen,die zu den physischen und/oder Steuerungsbedingungen innerhalb einerAnlage oder eines Unternehmens gehören. Die Funktionsblöcke 68 und 70 können jeweilseine oder mehrere mathematische Funktionen (beispielsweise Summierungsoperationen, Multiplikationsoperationen,Divisionsoperationen etc.), logische Funktionen oder Ausdrücke (beispielsweiselogische ODER-Verknüpfungen, UND-Verknüpfungenetc.) oder jede andere gewünschteFunktion enthalten. Jeder der Funktionsblöcke 68 und 70 kannauch mit einem oder mit mehreren Attributen 72 und 74 inZusammenhang stehen. [0038] Zusätzlich zu Attributen und Funktionsblöcken können dieModule 58 ferner mit einem Algorithmus 78 in Zusammenhangstehen, der aus einer oder mehreren Softwareroutinen zusammengesetztsein kann, die eine Abfolge von mathematischen und/oder logischenOperationen durchführen.Ferner kann die in 2 gezeigteBeispielhierarchie ein oder mehrere Drahtobjekte 80 (DRAHT)enthalten, die grafischen Darstellungen von Drähten entsprechen, die in Verbindungmit der grafischen Darstellung der gesamten, durch das Beispielin 2 dargestellten Steuerhierarchieverwendet werden. [0039] Ein Objekthierarchie- und Datenbankschemawie das in dem Beispiel in 2 gezeigteversetzt einen Benutzer oder einen Systemoperator in die Lage, über einegrafische Benutzerschnittstelle oder dergleichen jede gewünschte Ebenean Details oder Informationen überdie Konfiguration einer Anlage und ihrer Steuersysteme freizulegen,die durch diese Objekthierarchie dargestellt sind. Mit anderen Wortenkann ein Benutzer oder Systemoperator die Hierarchie durchlaufen(d. h. sich durch die Hierarchie bewegen), und zwar von einem Objektzu einem oder mehreren zugehörigenUnterobjekten, um jede beliebige benötigte Detailebene freizulegen.Nachdem er beispielsweise die zu dem Bereichsobjekt 52 (BEREICHA) gehörendenInformationen oder Daten freigelegt hat, kann ein Benutzer die Hierarchie durchqueren,um die zu dem Modul 58 (MOD B) gehörenden Informationen oder Datenfreizulegen, und dann wiederum eines der Objekte 64–80,die zu dem Modul 58 gehören. [0040] 3 isteine detailliertere schematische Ansicht einer Beispielobjektkonfiguration 100,die mit den hierin beschriebenen Verfahren und der Vorrichtung verwendetwerden kann. Die in 3 gezeigte Beispielobjektkonfigurationkann verallgemeinert werden und als zu Grunde liegende Strukturoder Schablone zum Aufbau jedes der in 2 gezeigten Objekte und Unterobjekteverwendet werden. Wie 3 zeigt, enthält die Objektkonfiguration 100 einenHauptobjektabschnitt 102 und einen zugehörigen Objektabschnitt 104.Der Hauptobjektabschnitt 102 enthält ein zugehöriges Objekt 106,Eigenschaften 108 und eine Rolle 110. Das zugehörige Objekte 106 kannunter anderen Informationen oder Daten den Namen des durch den Hauptobjektabschnitt 102 dargestelltenObjekts sowie eine eindeutige Identifikation enthalten. Die Eigenschaften 108 können Charakteristikades Typs des zugehörigenObjekts 106 enthalten, wie z. B. eine Beschreibung undeine Abtastrate in dem Fall, in dem der Hauptobjektabschnitt 102 einModul ist. [0041] Die Rolle 110 charakterisiertdie Verbindung zwischen dem zugehörigen Objekt 106 undeinem oder mehreren zugehörigenObjekten 112 und 114 innerhalb des zugehörigen Objektabschnitts 104.Die Rolle 110 charakterisiert die Verbindung (d. h. Straddleoder Schnittstelle) zwischen dem zugehörigen Objekt 106 undden zugehörigenObjekten 112 und 114 in Vorwärts- und Rückwärtsrichtung. Diese Charakterisierungkann beispielsweise Informationen enthalten, die die zulässige Multiplizität und diezulässigePropagation von Operationen zwischen dem zugehörigen Objekt 106 undden zugehörigenObjekten 112 und 114 betreffen. Beispielsweisekann ein Objekt des Modultyps mehrere Instanzen eines bestimmtenBlockobjekts haben. Jede einzelne dieser Verwendungen kann jedochnur zu einem einzelnen Modul gehören.Wenn zusätzlichdie Verwendung eines Blockobjekts gelöscht wird (beispielsweise über eineBenutzerschnittstelle), werden alle Attribute und Blöcke innerhalbdieses Blockobjekts (d. h. die davon abhängigen Attribute und Blöcke) ebenfallsgelöscht. Eskann jedoch erwünschtsein, das Löscheneines Knotens (beispielsweise eines Bereichs oder eines Standorts)zu verhindern, wenn dieser Knoten gegenwärtig zugewiesene Module hat. [0042] In einem bestimmten Beispiel kannder Hauptobjektabschnitt 102 beispielsweise dem Modul 58 (d.h. MOD B) entsprechen, und somit können die Eigenschaften 108 danneiner Beschreibung und einer Abtastrate entsprechen. Die Rolle 110 kanndas Modul 58 (d. h. das zugehörige Objekt 106) mitden Attributen 64 und 66 (d. h. den zugehörigen Objekten 112 und 114)verbinden und kann ferner festlegen, dass die Attribute in Vorwärtsrichtung(d. h. von den zugehörigenObjekten 112 und 114) zu dem zugehörigen Objekt 106 zupropagieren sind und dass Löschungenvon dem zugehörigenObjekt 106 zu den zugehörigenObjekten 112 und 114 (d. h. von dem Modul 58 zuden Attributen 64 und 66) zu propagieren bzw.weiterzuleiten sind. [0043] Die in 2 und 3 gezeigte und vorstehend beschriebeneBeispiel-Objekthierarchie und Objektstruktur ermöglicht es einem Benutzer oderSystemoperator, eine Datenbank zu schaffen, die die Konfigurationsinformationen(beispielsweise Steuerkonfigurationsinformationen, physische Konfigurationsinformationenetc.) eines Prozesssteuersystems, einer Anlage oder eines Unternehmensenthält.Eine derartige hierarchische Datenbank kann ohne weiteres durchquertoder durchwandert werden, um jede gewünschte Art und jede Menge anDetails freizulegen, die sich auf Aspekte des durch die Datenbankdargestellten Systems beziehen. [0044] Frühere oder bekannte Systemeunterhielten typischerweise eine Objektstruktur wie die in 2 und 3 gezeigte in einer zentralen Verwahrungsstelle odereinem Server, der eine Datenbank aufrechterhielt, die durch eineoder mehrere Clientanwendungen oder andere Geräte durch ein Kommunikationsnetzzugreifbar war. Ferner wurden zu den Informationen in der DatenbankgehörendeRegeln typischerweise innerhalb der Datenbank gespeichert und von demServer fürdie Clientanwendungen ausgeführt. Somithaben sich Clientanwendungen in bekannten Systemen für ihre Datenerfordernisse,Regelverarbeitungserfordernisse etc. auf einen zentralen Server gestützt. AlsFolge nimmt mit der wachsenden Komplexität von Unternehmen oder anderenSystemen die Menge der überdas Kommunikationsnetz, welches die Clients und die Server miteinanderverbindet, transportierten Kommunikationsvorgänge dramatisch zu, wodurchdie Ausführungsgeschwindigkeitund die Verarbeitungseffizienz der Clientanwendungen beträchtlichvermindert wird. [0045] Die nachfolgend als Beispiel beschriebenen Zugriffsverfahrenund Vorrichtungen fürverteilte Daten nutzen einen oder mehrere Zwischendatenserver, umInformationen und Regelinformationen für den lokalen Zugriff und dieAusführungdurch Clientanwendungen zu verteilen. Mit anderen Worten kann eineobjektbasierte hierarchische Datenbank, wie etwa eine in einer demBeispiel aus 2 ähnlichen oderidentischen Weise aufgebaute, innerhalb einer zentralen Datenverwahrungsstelle(beispielsweise einem Server) resident sein und die ZwischendatenserverkönnenLadeabschnitte dieser Datenbank zusammen mit den zugehörigen Regelngemäß dem Bedarfvon Clientanwendungen, die in Bezug auf die Zwischendatenserverlokal sind, anfordern. Obgleich Daten und Regeln nach Anforderunggemäß dem Bedarfdurch Clientanwendungen geladen werden können, können einige oder alle Datenund/oder Regeln vor der Ausführungszeitin den lokalen Speicher geladen werden. Beispielsweise können dergleiche Satz oder die gleichen Regeln unter Verwendung einer gemeinsamenGruppe von .net assemblies (beispielsweise DLLs) an jedem der Client-Ortelokal geladen werden. Wenn in diesem Fall angeforderte Daten während derAusführungszeitan einem bestimmten Client-Prozess ankommen, werden die Daten automatischunter Verwendung des lokal gespeicherten Regelsatzes in eine geeignetehierarchische Datenstruktur umgewandelt. [0046] In jedem Fall können die hierin beschriebenenBeispiele von Datenzugriffsverfahren und Vorrichtungen Datenbankinformationenund zugehörige Regelnan Zwischendatenserver verteilen, die für Clientanwendungen lokal odernaheliegend sind, im Gegensatz zu dem Erfordernis, dass alle Clientanwendungenfür ihreInformationsbedürfnisseund Regelverarbeitungsbedürfnisseeine Schnittstelle mit einer einzigen zentralen Datenbank bildenmüssen,die in einem Server resident ist. Somit können die hierin beschriebenenDatenverteilungsvorrichtungen und die Verfahren verwendet werden,um das Ausmaß derNetzkommunikation (beispielsweise Umlaufkommunikationsvorgänge) zureduzieren oder zu minimieren, die erforderlich sind, um die Clientanwendungenin die Lage zu versetzen, auf benötigte Daten zuzugreifen undihre Funktionen durchzuführen,was zu rascheren Ausführungszeitenfür dieClientanwendungen und zu verbesserter Aktualität der Anwendungen führt. [0047] 4 istein Blockdiagramm, das ein Beispielsystem 120 darstellt,das eine Vielzahl von in Kommunikationsverbindung stehenden Datenserverprozessen 122 und 124 hat,die zusammenwirken, um auf eine Datenbank 126 zuzugreifen.Der Datenserverprozess 122 ist ein Zwischendatenserverprozess,der in einer Workstation oder einem Prozessorsystem (beispielsweiseeiner der Workstations 18, 20 und 42 aus 1) durchgeführt werdenkann und der in der Näheeiner oder mehrerer Clientanwendungen 128 und 130 istund mit diesen in Kommunikationsverbindung steht. Die Clientanwendungen 128 und 130 können innerhalbder gleichen Workstation oder des gleichen Prozessorsystems wieder Zwischendatenserverprozess 122 instanziert sein und/odereiner anderen Workstation oder einem anderen Prozessorsystemen,das mit den Clientanwendungen 128 und 130 in Kommunikationsverbindungsteht. [0048] Der Zwischendatenserverprozess 122 enthält einenZwischendatenserver 132 und eine Session 134,die den Austausch von Informationen oder Daten zwischen einer lokalenDatenquelle 136 und einer Datenbankverbindung 138 koordiniert.Allgemein ausgedrücktdurchläuftdann, wenn der Zwischendatenserver 132 eine Datenabfragevon einer oder mehreren der Clientanwendungen 128 und 130 empfängt, derZwischendatenserver 132 die Datenquelle 136 über dieSession 134, um zu bestimmen, ob die abgefragten Informationenoder Daten lokal verfügbarsind (d. h. innerhalb der Datenquelle 136 des Zwischendatenserverprozesses 122 verfügbar sind).Eine detailliertere Beschreibung der Art und Weise, in der die Session 134 dieDatenquelle 136 durchläuft,wird nachfolgend in Verbindung mit 5 gegeben. [0049] Obgleich in 4 nicht dargestellt, kann jede der Clientanwendungen 128 und 130 jeweilseine Session, eine Datenquelle und eine Datenbankverbindung enthalten,die identisch mit oder ähnlichder Session 134, der Datenquelle 136 und der Datenbankverbindung 138 sind,die in Verbindung mit dem Zwischendatenserverprozess 122 dargestelltist. Auf diese Weise könnendie Clientanwendungen 128 und 130 direkt mit demDatenserverprozess 124 kommunizieren (d. h., die Clientanwendungen 128 und 130 müssen nichtdurch den Zwischendatenserverprozess 122 mit dem Datenserverprozess 124 kommunizieren). [0050] Wenn die von den Clientanwendungen 128 oder 130 angeforderteInformation von der Datenquelle 136 nicht lokal verfügbar ist,veranlasst die Session 134 die Datenbankverbindung 138,eine Informationsanforderung an den Zwischendatenserver 124 über eineKommunikationsverbindung 140 zu senden. Zusätzlich oderalternativ in dem Fall, dass die Clientanwendung 130 Datenangefordert hat, die in der Datenbank 126 resident sind,könntedie Clientanwendung 130 diese Daten oder Informationen direktvon dem Datenserverprozess 124 über eine Kommunikationsverbindung 141 anfordern.Selbstverständlichkönntedie Clientanwendung 128 ebenfalls Informationen direktvon dem Datenserverprozess 124 über ihre eigene Verbindung(nicht dargestellt) anfordern. In jedem Fall können die Kommunikationsverbindungen 140 und 141 unterVerwendung jeder gewünschten Kombinationvon drahtlosen oder drahtgebundenen Medien implementiert werdenund könnenjede gewünschteKombination von Kommunikationsprotokollen oder -techniken verwenden.Beispielsweise könnendie Kommunikationsverbindungen 140 und 141 Telefonleitungenund/oder ein Paketvermittlungs-Kommunikationsnetz (beispielsweisedas Internet) einschließen.Die überdie Kommunikationsverbindungen 140 transportierten Datenoder Informationen werden vorzugsweise, jedoch nicht notwendigerweise,unter Verwendung einer Extensible Markup Language (XML) formatiertund unter Verwendung eines Transportmechanismus übertragen, der beispielsweiseauf dem bekannten Transmission Control Protocol (TCP) oder dem Hypertext TransportControl Protocol (HTTP) basiert. Zusätzlich kann in Verbindung mitInformationen, die unter Verwendung von HTTP gesendet werden, einMitteilungscodierungsprotokoll, wie z. B. das Simple Object AccesssProtocol (SOAP) verwendet werden. [0051] Der Datenserverprozess 124 enthält einen Zwischendatenserver 142,einen Sessionsprozess 144, eine Datenquelle 146 undeinen Datenbankaccessor 148, der für den Zugriff auf die Datenbank 126 verwendetwird. Der Zwischendatenserver 142 empfängt Anforderungen von Informationenoder Daten von dem Zwischendatenserverprozess 122 über die Kommunikationsverbindung 140 und/odervon einer oder mehreren der Clientanwendungen 128 und 130 beispielsweise über dieKommunikationsverbindung 141. Wie vorstehend beschriebenwerden derartige Anforderungen von Daten oder Informationen durch einenSessionsprozess koordiniert und übereine Datenbankverbindung in dem Fall befördert, in dem der Sessionsprozessdie Datenquelle durchläuftund bestimmt, dass die angeforderte Information oder die Daten lokalnicht zur Verfügungstehen (beispielsweise innerhalb des lokalen Zwischendatenserverprozessesgecached sind). Der Zwischendatenserver 142 verwendet seinenSessionsprozess 144, um seine lokale Datenquelle 146 zudurchlaufen, um zu bestimmen, ob die angeforderte Information (d.h. die ursprünglichvon einer oder mehrerer der Clientanwendungen 128 und 130 angeforderteInformation) lokal verfügbarist (beispielsweise in dem Zwischendatenserverprozess 124 gecached).Wenn der Sessionsprozess 144 feststellt, dass die angeforderteInformation oder die Daten innerhalb der Datenquelle 146 nichtverfügbarsind, liest der Sessionsprozess 144 die angeforderte Informationoder die Daten aus der Datenbank 126 über den Datenbankaccessor 148 aus.Der Datenbankaccessor 148 kann jeder gewünschte Datenbankserverprozesssein, der in einer hierarchisch arrangierten, Objekt-orientiertenDatenbank, wie etwa der in 2 gezeigtenBeispieldatenbankstruktur, gespeicherte Informationen oder Daten freigibt. [0052] Sobald die angeforderten Informationenoder Daten aus der Datenbank 126 ausgelesen wurden, werdendie Informationen oder Daten von dem Zwischendatenserverprozess 124 über dieKommunikationsverbindung 140 zu dem Zwischendatenserverprozess 122 transportiertund/oder direkt zu einer oder mehreren der Clientanwendungen 128 und 130 beispielsweise über dieVerbindung 141 transportiert. In dem Fall, dass der Zwischendatenserverprozess 122 dieabgerufenen Informationen oder Daten über die Datenbankverbindung 138 empfängt, transportierter die abgerufenen Informationen oder Daten zu den Clientanwendungen 128 und 130 dieursprünglichdie Informationen oder Daten überden Sessionsprozess 134 und den Zwischendatenserver 132 angeforderthaben. [0053] Somit verwendet der Zwischendatenserverprozess 122 seinelokale Datenquelle 136 (beispielsweise einen lokalen Cache),um Informationen oder Daten zu speichern, die von den Clientanwendungen 128 und 130 benötigt werden,wenn derartige Informationen von den Clientanwendungen 128 und 130 benötigt werden(d. h. auf Anfrage). In dem Fall, dass der Zwischendatenserverprozessam gleichen Ort oder nahe an einer Clientanwendung ist, die Informationenoder Daten anfordert (beispielsweise eine der Clientanwendungen 128 und 130),und der lokale Datenserverprozess 122 die angefordertenInformationen gegenwärtignicht in seiner lokalen Datenquelle verfügbar hat (beispielsweise derDatenquelle 136), kann eine Anforderung für dieseInformationen oder Daten durch einen oder mehrere andere Zwischendatenserverprozesse(beispielsweise den Zwischendatenserverprozess 124) zueinem Server oder anderem Prozess weitergeleitet werden, der schließlich Zugriffauf eine Datenbank (beispielsweise die Datenbank 126) hat,welche die gesamte Konfigurationsdatenbank enthält, die zu dem Unternehmen(beispielsweise dem Unternehmen 10) oder dem anderen System,in dem die Clientanwendung arbeitet, gehört. [0054] Obgleich das in 4 gezeigte Beispiel zwei Zwischendatenserverprozessedarstellt, die miteinander verkettet sind, könnten auf Wunsch mehr als zweiZwischendatenserverprozesse miteinander verkettet werden. in diesemFall könnteder Datenbankaccessor 148 an Stelle dessen eine andereDatenbankverbindung sein (d. h. ähnlichoder identisch mit der Datenbankverbindung 138), die inKommunikationsverbindung mit einem weiteren Zwischendatenserverprozessund schließlicheiner Datenbank, wie etwa der Datenbank 126 steht. Da dieClientanwendungen 128 und 130 ebenfalls ihre eigenenjeweiligen Sessionen, Datenquellen und Datenbankverbindungen habenkönnen,könntendiese Anwendungen 128 und 130 direkt auf den Datenserverprozess 124 oderjeden anderen ähnlichenoder identischen vorstehend beschriebenen Datenserverprozess, fallsdies erwünschtist. In einigen Fällenkann ein derartiger direkter Zugriff auf den Datenserverprozess 124 durchdie Clientanwendungen 128 und 130 nach Möglichkeitvermieden werden (d. h., wenn die angeforderten Daten beispielsweisebei dem Zwischendatenserverprozess 122 lokaler verfügbar sind),um die Kommunikationsanforderungen an die zentrale Datenbank 126 zuminimieren. [0055] Die Informationen oder Daten, diein der Datenbank 126 gespeichert sind und die über dieZwischendatenserverprozesse 123 und 124 zur Verwendungdurch die Clientanwendungen 128 und 130 transportiertwerden können,enthalten alle Informationen oder Daten, die ein objektorientiertesKonfigurationsmodell fürein Unternehmen aufbauen. Beispielsweise können alle zu den hierarchischangeordneten Objekten gehörendenInformationen, einschließlichAttributwerte, Datenbankregeln oder Verbindungen etc. nach Bedarf(oder im Fall von Regeln vor der Ausführungszeit, falls erwünscht) vonder Datenbank 126 zu einer der Clientanwendungen 128 und 130 transportiertund lokal gespeichert (beispielsweise in der Datenquelle 136)und im Fall von Regeln und dergleichen lokal ausgeführt werden.Sobald die Informationen oder Daten, die von den Clientanwendungen 128 und 130 benötigt werden,in der Datenquelle 136 lokal gespeichert sind, führen nachfolgendeAnforderungen fürdie gleichen Informationen durch die Clientanwendungen 128 und 130 nichtzu einer Kommunikation überdie Kommunikationsverbindungen 140 und 141. AlsResultat ermöglichtes das in 4 gezeigteBeispielsystem 120, dass die innerhalb einer komplexerenhierarchischen objektorientierten Konfigurationsdatenbank für ein Unternehmenoder anderes System enthaltenen Informationen lokal verteilt und gespeichertwerden, wo sie benötigtwerden und wenn sie benötigtwerden, wodurch die Gesamtmenge der für die Unterstützung derInformationsbedürfnisseder Clientanwendungen, die das Unternehmen oder das andere System bilden,erforderlichen Netzkommunikation reduziert wird. [0056] Die Zwischendatenserverprozesse 122 und 124 können inphysisch getrennten Workstations oder Verarbeitungssystemen instanziertwerden, die überdie Kommunikationsverbindung 140 in Kommunikation stehen,die ein Teil eines Kommunikationsnetzes sein kann. Die Zwischendatenserverprozesse 122 und 124 könnten jedochalternativ innerhalb der gleichen Workstations oder innerhalb desgleichen Verarbeitungssystemes instanziert werden. [0057] Die in dem Beispielsystem 120 in 4 gezeigten Funktionsblöcke können alsObjekte, Prozesse etc. unter Verwendung jeder gewünschtenKombination von Software, Firmware und Hardware implementiert werden.Beispielsweise könnenein oder mehrere Mikroprozessoren, Microcontroller, anwendungsspezifischeintegrierte Schaltungen (ASICs) etc. auf Instruktionen oder Datenzugreifen, die auf maschinen- oderprozessorlesbaren Speichermedien gespeichert sind, um die hierinbeschriebenen Vorrichtungen und Verfahren zu implementieren. Die Speichermedienkönnenjede beliebige Kombination von Einrichtungen und/oder Medien einschließen, wiez. B. Festkörperspeichermedieneinschließlich Direktzugriffsspeicher(RAM), Nurlesespeicher (ROM), elektrisch löschbare programmierbare Nurlesespeicher(EEPROM) etc., optische Speichermedien, magnetische Speichermedienetc. Zusätzlich kannjede Software oder Firmware, die zur Implementierung der in 4 gezeigten Funktionsblöcke verwendetwird, zusätzlichoder alternativ zu dem Prozessor oder zu einer anderen Einrichtungoder Einrichtungen, die die Software ausführen, über das Internet, Telefonleitungen,Satellitenkommunikationsverbindungen etc. abgegeben und auf diesezugegriffen werden. [0058] 5 isteine detaillierte schematische Ansicht, die ein Beispiel der Weisezeigt, in der Clientanwendungen auf Informationen oder Daten zugreifenkönnen,die in einer Datenquelle eines Zwischendatenserverprozesses gespeichertsind. Im einzelnen wird der Status für Clientanwendungen von einemoder mehreren Clientroots 200 und 202 aufrechterhalten.Die Clientroots 200 und 202 sind Fenster auf eineDatenquelle 204. [0059] Eine Session 206 verwaltetdie Wechselwirkungen zwischen den Clientroots 200 und 202 und derDatenquelle 204. Beispielsweise können die Clientroots 200 und 202 denStatus fürdie jeweiligen Clientanwendungen 128 und 130 (4) enthalten, die Datenquelle 204 kannder Datenquelle 136 entsprechen und die Session 206 kannder Session 134 entsprechen. Auf diese Weise müssen dieClientanwendungen 128 und 130 nicht direkt aufdie Datenquelle 136 zugreifen und können an Stelle dessen den jeweiligenAnwendungsstatus (entsprechend den Clientroots 200 und 202)beibehalten, auf den rasch und wiederholt nach Daten zugegriffenwerden kann, die gegenwärtiglokal innerhalb des Zwischendatenserverprozesses 122 gespeichertsind. Wenn beispielsweise die zu dem Clientroot 200 gehörende Clientanwendungzu einem Modulobjekt 208 (MOD A) gehörende Daten benötigt, kanndie Session 206 das Clientroot 200 und ein Standortobjekt 210 durchlaufen,um die benötigtenInformationen von dem Modulobjekt 208 abzurufen. Wenn andererseitsdie zu dem Clientroot 200 gehörende Clientanwendung zu einemAttribut 212 (ATTR 1) gehörende Informationen benötigt, durchläuft derSessionsprozess 206 die Datenquelle 204, um die zu demAttribut 212 gehörendeInformation abzurufen, und sendet diese Informationen, die zu demAnwendungsstatus, der zu dem Clientroot 200 gehört, hinzuzufügen sind.Wenn ferner die zu dem Clientroot 200 gehörende ClientanwendungInformationen benötigt,die nicht lokal gespeichert sind (d. h. die nicht bereits in dielokale Datenquelle 204 geladen oder in dieser gespeichert sind),kann der Sessionsprozess 206 diese Informationen von einemZwischendatenserverprozess 214 abrufen. Der Zwischendatenserverprozess 214 kann beispielsweisedem in 4 gezeigten Zwischendatenserverprozess 124 entsprechen.Obgleich in 5 zwei Clientrootsgezeigt sind, könnenein oder mehr als zwei Clientroots an Stelle dessen verwendet werden. [0060] Wie vorstehend allgemein unter Bezugauf 4 und 5 beschrieben, können vonClientanwendungen benötigteInformationen (beispielsweise Objektdaten, die Attributwerte, Regelnetc. einschließen)nach Bedarf geladen werden (d. h. von einer Datenbank abgerufenund nach Erfordernis lokal gecached werden). Während die hierin beschriebenen Vorrichtungenund die Verfahren es ermöglichen,Informationen auf elementarer Basis bedarfsgerecht zu laden (d.h. ein Objekt auf einmal), kann weitere Kommunikationseffizienzdurch das Erkennen von Datenbankzugriffsmustern und das bedarfsgerechte Ladenvon etwas mehr Informationen als genau von einer Anwendung angefordert,erzielt werden. Mit anderen Worten können Datenbankzugriffsmusterverwendet werden, um vorwegzunehmen, welche Informationen wahrscheinlichauf die Anforderung eines bestimmten Informationsgegenstandes durcheine Anwendung folgend benötigtwerden. Wenn beispielsweise eine Clientanwendung von einem Modulobjektzu einer Attributrolle durchläuft(d. h. die Clientanwendung fordert die Attributrolleninformation voneinem anderen Datenserver an), folgt gewöhnlich eine nachfolgende Anforderungder Attributwerte, da diese Informationen gewöhnlich zusammen mit dem Attributnamenund -typen angezeigt werden. Um die Kommunikationseffizienz zu steigern(d. h. die Gesamtmenge der Netzkommunikation zu reduzieren), können Attributwertestets zusammen mit Attributrolleninformationen gesendet werden.Allgemein ausgedrücktkann die Effizienz der Kommunikation erzielt werden, indem die charakteristischenInformationsanforderungsmuster vorweggenommen werden, die für Anwendungentypisch sind, und dann die Informationen in einer Weise gebündelt werden, diemit diesen Zugriffsmustern übereinstimmt,um die Netzwerkkommunikation zu minimieren (d. h. die Anzahl derUmlaufkommunikationsvorgänge,die zum Erhalten der von den Clientanwendungen benötigten Informationenerforderlich sind). [0061] In dem Fall, dass eine ClientanwendungOffline-Zugriff auf eine Systemdatenbank benötigt (wenn beispielsweise eineOffline-Editiersession gewünschtwird), kann der gesamte Inhalt der Datenbank (d. h. alle Regelnund Daten) angefordert und lokal gecached werden. Auf diese Weisekann eine Clientanwendung einen Systembenutzer in die Lage versetzen,eine vollständigeEditiersession Offline auszuführen.Da alle Regeln lokal verfügbarsind, kann währendeiner derartigen Offline-Editiersession eine lokale Regelüberprüfung verwendetwerden, um nachfolgende Datensynchronisierungs- und Abstimmungsaktivitäten beimWiederherstellen des Anschlusses der Clientanwendungen an die zentrale Datenbankzu erleichtern (d. h. bei Beendigung der Offline-Editiersession).Derartige Datensynchronisierungs- und Abstimmungsaktivitäten können unter Verwendungder nachfolgend beschriebenen beispielhaften Objektänderungshandhabungstechniken implementiertwerden. [0062] Clientanwendungen (beispielsweisedie Clientanwendungen 128 und 130) können aufInformationen zugreifen, die in einer lokal gespeicherten oder gecachetenDatenquelle (beispielsweise die Datenquelle 136) gespeichertsind und könnendiese Informationen modifizieren oder verändern. Beispielsweise kanndie Clientanwendung 128 (4)dem Clientroot 200 (5)entsprechen und kann den Clientroot 200 durchlaufen, umauf zu dem Modul 208 gehörende Informationen zuzugreifen.Wenn die Client Anwendung 128 versucht, Informationen (beispielsweiseRollen und/oder Eigenschaften) in dem Modul 208 innerhalbdes Kontextes einer Transaktion den Datenbankregeln unterliegend(d. h. unter Prüfung derRegeln) zu modifizieren, wird ein "verfälschtes" Objekt erzeugt,um die versuchten Modifikationen zu speichern. Wenn eine Transaktionverschachtelt ist und somit weitere Versuche auftreten, dem Modul 208 zugehörige Informationenzu verändernoder zu modifizieren, wird ein weiteres verfälschtes Objekt erzeugt, unddieser weiteren Änderungenzu speichern. ZusätzlicheverfälschteObjekte könnenerzeugt werden, wenn zusätzlicheinnere verschachtelte Transaktionen ausgeführt werden. Sobald die innersteverschachtelte Transaktion festgeschrieben wurde, werden die indem innersten verfälschtenObjekt wiedergegebenen Veränderungenauf das verfälschteObjekt übertragen,das zu der nächstäußeren Transaktiongehört.Die Übertragungder verändertenInformationen der verfälschtenObjekte von einer inneren Transaktion zu der nächstäußeren Transaktion wird fortgeführt, wenndie inneren Objekte festgeschrieben werden, bis alle Veränderungenauf das verfälschteObjekt übertragenwurden, das zu der äußerstenTransaktion gehört.Die Festschreibung der äußerstenTransaktion führtdazu, dass die Veränderungenpermanent werden, wodurch ein Zurückziehen der Veränderungen(d. h. die Umkehrung der Veränderungenin den Zustand der Anwendungen vor dem Beginn der Transaktion) verhindertwird. [0063] Wie vorstehend beschrieben versetzen Transaktionen(und verschachtelte Transaktionen) Anwendungen in die Lage, Veränderungenan Objektinformationen innerhalb ihrer jeweiligen Clientroots zubewirken oder aufzuzeichnen. Clientanwendungen können jedoch zusätzlich Objektveränderungen ineine Datenbank schreiben beziehungsweise darin aufzeichnen (beispielsweisedie Datenbank 126), wodurch alle Zwischendatenserver, diemit dieser Datenbank verbunden sind, in die Lage versetzt werden,die verändertenInformationen bei Bedarf an ihre jeweiligen Clientanwendungen abzugeben.Vorzugsweise, jedoch nicht notwendigerweise, können permanente Veränderungenan Objektinformationen durch eine Clientanwendung ansprechend aufeine automatische Anweisung von der Clientanwendung und/oder ansprechendauf eine Anweisung von einem Systembenutzer oder Operator in dieDatenbank (beispielsweise die Datenbank 126 aus 4) zurückgeschrieben werden. [0064] Zunächst werden in einem Clientroot(beispielsweise dem Clientroot 200) festgeschriebene (d. h.dauerhaft gemachte) Veränderungenin eine zu dem Clientroot gehörendeDatenquelle (beispielsweise die Datenquelle 204) über einenSessionsprozess (beispielsweise den Sessionsprozess 206)geschrieben. Der Sessionsprozess propagierte dann alle an den ClientrootdurchgeführtenVeränderungenzu der Datenquelle (beispielsweise der Datenquelle 204 einschließlich allerObjekte, mit denen sie verbunden ist). Der Sessionsprozess 206 sendetdann die verändertenDatenquelleninformationen an einen Zwischendatenserver, der mitder Datenbank verbunden ist. In dem Fall, in dem zwei oder mehreingreifende Zwischendatenserver zwischen der zentralen Datenbankund der die verändertenInformationen sendenden Datenquelle sind, werden die Veränderungen vonDatenserver zu Datenserver gesendet, bis sie die Datenbank erreichen.Um die Unabhängigkeit vonPlattformen zu erleichtern und die gesamte Systemflexibilität zu steigern,werden die Informationen vorzugsweise, jedoch nicht notwendigerweisezwischen den Zwischendatenservern in Form eines XML-Dokuments transportiert.Die Datenbank setzt Datenbankregeln durch, und wenn eine der andie Datenbank abgegebenen Informationen (beispielsweise innerhalbempfangener XML-Dokumente) nicht diesen Regeln entspricht, weistdie Datenbank die Veränderungenzurück(d. h. zeichnet sie nicht auf). [0065] Von der Datenbank empfangene undakzeptierte Veränderungenkönnendann durch einen oder mehrere Zwischendatenserver an alle zu einemUnternehmen gehörendeDatenquellen weitergeleitet werden. Beispielsweise kann ein XML-Dokument, daseine umfassende Liste aller Veränderungenenthält,die von der Datenbank empfangen und gespeichert wurden, asynchronzurückzu dem Client weitergeleitet werden, von dem die Veränderung stammt,und/oder zu einigen oder allen Zwischendatenservern innerhalb desUnternehmens oder Systems. In ähnlicherWeise könnenVeränderungen,die innerhalb der Datenbank auftreten und die nicht das Resultatder Weiterleitung von verändertenInformationen herauf zu der zentralen Datenbank durch eine odermehrere Clientanwendungen sind, asynchron als ein Veränderungsbenachrichtigungsmechanismushinunter zu den Datenservern und somit den Datenquellen, die dasUnternehmen bilden, weitergeleitet werden. Derartige Veränderungsbenachrichtigungenkönnenbeispielsweise unter Verwendung eines XML-Dokuments implementiertwerden, das in hierarchischer Weise angeordnete Daten enthält, um die effizienteNutzung der Daten durch die Datenquellen zu ermöglichen. Eine Datenquelle,die ein derartiges XML-Dokument empfängt, kann Objekte innerhalb desDokuments überspringen,die zuvor nicht geladen wurden, und ein neues reduziertes XML-Dokumentproduzieren, das nur diejenigen Veränderungen enthält, dieden oder die Clients betreffen, die mit dieser Datenquelle verbundensind. [0066] 6 istein Blockdiagramm eines Beispielsystems 300, das eine Vielzahlvon Verarbeitungssystemen 302, 304, 306 und 307 hat.Die Verarbeitungssysteme 302, 304 und 306 benutzenjeweilige Zwischendatenserver 308, 310 und 312 für den Zugriffauf eine Datenbank 314. Die Verarbeitungssysteme 304 und 307 verwendenzusätzlichjeweilige Zwischendatenserver 315 und 316 zumZugriff auf einen Ablaufserver 317. Das System 302 kannbeispielsweise eine Anwendungsstation (beispielsweise eine der Workstations 18, 20 und 42 aus 1) sein, die eine oder mehrereClientanwendungen 318 auf Windows®-Basisausführt.Die Anwendungen 318 könnenClientroots 319 und 320 enthalten, die mit einerDatenquelle 323 verbunden sind. Die Datenquelle 323 kannmit der Datenbank 314 überden Zwischendatenserver 312 über einen Datenbank-Server 324 verbundensein. Das System 302 kann ferner einen Web-Client 326 enthalten,der mit dem System 304 in Kommunikationsverbindung steht,wie nachfolgend im Detail erläutertwird. [0067] Das System 304 kann beispielsweiseein Webserver sein (der unter Verwendung einer Workstation odereines beliebigen anderen Verarbeitungssystems implementiert seinkann), der einen Internetserverprozess 328 ausführt, dereinen oder mehrere Sessionsstatus 330 hat (die analog zuAnwendungsstatus sind). Die Sessionsstatus 330 enthaltenClientroots 332 und 334 und jeweilige Datenquellen 336 und 338,die mit den Zwischendatenservern 310 und 315 inKommunikationsverbindung stehen. Somit können die Sessionsstatus 330 aufInformationen (beispielsweise Daten, Regeln etc.) zugreifen, dieinnerhalb der Datenbank 314 und/oder dem Ablaufserver 317 gespeichertsind. Das System 304 kann ferner einen Webclient 340 enthalten,der in Kommunikationsverbindung mit dem Internetserverprozess 328 steht.Auf diese Weise könnendie Webclients 326 und 340 jeweils einem der Sessionstatus 330 (d. h.einem der Clientroots 332 und 334) entsprechen undkönnenmit den Zwischendatenservern 310, 312, 315 und 316 zusammenwirken,um Informationen mit der Datenbank 314 und/oder dem Laufzeitserver 317 unterVerwendung der hierin beschriebenen Verfahren auszutauschen.
权利要求:
Claims (49) [1] Verfahren zum Zugriff auf eine zu einem ProzesssteuersystemgehörendeDatenbank, enthaltend: Empfangen einer Anforderung von Informationenvon einer Clientanwendung in einem Zwischendatenserverprozess; Feststellen,ob die Informationen innerhalb einer zu dem ZwischendatenserverprozessgehörendenDatenquelle gespeichert sind; Senden einer Anforderung vonInformationen von dem Zwischendatenserverprozess zu einem anderen Prozess,wenn die Informationen nicht innerhalb der Datenquelle gespeichertsind; und Zugreifen auf die Datenbank, um die Informationen abzurufen,nachdem der andere Prozess die Anforderung der Informationen empfangenhat. [2] Verfahren nach Anspruch 1, dadurch gekennzeichnet,dass das Empfangen der Anforderung der Informationen von der Clientanwendungin dem Zwischendatenserverprozess das Empfangen einer Anforderungvon Daten und mindestens einer zu den Daten gehörenden Regel einschließt. [3] Verfahren nach Anspruch 1, dadurch gekennzeichnet,dass die Anforderung der Informationen von der Clientanwendung indem Zwischendatenserverprozess das Empfangen einer Anforderung von Objektinformationenund/oder Regeln einschließt. [4] Verfahren nach Anspruch 1, dadurch gekennzeichnet,dass das Bestimmen, ob die Informationen innerhalb der Datenquellegespeichert sind, das Durchlaufen einer hierarchisch in Beziehungstehenden ersten Menge von Objekten, die einer Teilmenge einer zweitenMenge von Objekten entspricht, die in der Datenbank gespeichertsind, einschließt. [5] Verfahren nach Anspruch 4, dadurch gekennzeichnet,dass das Durchlaufen der hierarchisch in Beziehung stehenden erstenMenge von Objekten das Durchlaufen eines Clientroots einschließt, daseinem Status der Clientanwendungen entspricht. [6] Verfahren nach Anspruch 1, dadurch gekennzeichnet,dass das Senden der Anforderung von Informationen von dem Zwischendatenserverprozess zudem anderen Prozess das Senden der Anforderung von Informationen über eineDatenbankverbindung und eine Kommunikationsverbindung einschließt. [7] Verfahren nach Anspruch 1, dadurch gekennzeichnet,dass der andere Prozess ein weiterer Zwischendatenserverprozessist. [8] Verfahren nach Anspruch 1, dadurch gekennzeichnet,dass das Zugreifen auf die Datenbank zum Auslesen der Informationenanschließenddaran, dass der andere Prozess die Anforderung von Informationenerhalten hat, das Senden einer Anforderung von Informationen aneinen Datenbankzugang einschließt,der mit der Datenbank in Kommunikationsverbindung steht. [9] Verfahren nach Anspruch 1, enthaltend das Verarbeitender Anforderung von Informationen über eine Session, die mit derDatenquelle und der Datenbankverbindung in Kommunikationsverbindung steht. [10] Verfahren nach Anspruch 1, enthaltend das Zugreifenauf die Datenbank zum Auslesen von zusätzlichen Informationen, wobeidie zusätzlichenInformationen zu einem Datenzugriffsmuster gehören, das für die Clientanwendung charakteristischist. [11] Verfahren nach Anspruch 1 dadurch gekennzeichnet,dass das Senden der Anforderung von Informationen von dem Zwischendatenserverprozess zudem anderen Prozess die Verwendung mindestens entweder einer ExtensibleMarkup Language, eines Transportprotokolls oder einer Mitteilungscodierungzum Senden der Anforderung von Informationen einschließt. [12] System zum Zugreifen auf eine zu einem ProzesssteuersystemgehörendeDatenbank, enthaltend: einen Zwischendatenserver, der mit derDatenbank in Kommunikationsverbindung steht und so programmiertist, dass er eine Anforderung von Informationen von einer Clientanwendungempfängt; feststellt,ob die Informationen in einer Datenquelle gespeichert sind, diezu dem Zwischendatenserver gehört;und eine Anforderung der Informationen von dem Zwischendatenserverzu einem weiteren Zwischendatenserver sendet, wenn die Informationennicht in der Datenquelle gespeichert sind. [13] System nach Anspruch 12, dadurch gekennzeichnet,dass der Zwischendatenserver so programmiert ist, dass er eine Sessioneinrichtet, die die Kommunikationsvorgänge mit der Datenquelle undeiner Datenbankverbindung koordiniert. [14] System nach einem der Ansprüche 11 bis 13, dadurch gekennzeichnet,dass die Anforderung der Informationen eine Anforderung von Datenund mindestens einer zu den Daten gehörenden Regel einschließt. [15] System nach Anspruch 12, dadurch gekennzeichnet,dass die Anforderung der Informationen eine Anforderung von Objektinformationenund/oder Regeln einschließt. [16] System nach Anspruch 12, dadurch gekennzeichnet,dass die Datenquelle eine hierarchisch in Beziehung stehende erstenMenge von Objekten, die einer Teilmenge einer zweiten Menge vonObjekten entspricht, die in der Datenbank gespeichert sind, einschließt. [17] System nach Anspruch 12, dadurch gekennzeichnet,dass der Zwischendatenserver so programmiert ist, dass er die Anforderungder Informationen an den anderen Zwischendatenserver über eineDatenbankverbindung und eine Kommunikationsverbindung sendet. [18] System nach Anspruch 12, dadurch gekennzeichnet,dass der andere Zwischendatenserver auf die Datenbank über einenDatenbankzugang zugreift, um die Informationen auszulesen. [19] System nach Anspruch 12, dadurch gekennzeichnet,dass der Zwischendatenserver so programmiert ist, dass er die Anforderungder Informationen an den anderen Zwischendatenserver unter Verwendungmindestens entweder einer Extensible Markup Language, eines Transportprotokollsoder einer Mitteilungscodierung sendet. [20] Maschinenlesbares Medium mit darauf gespeichertenBefehlen, die dann, wenn sie ausgeführt werden, eine Maschine veranlassen: eineAnforderung von zu einem Prozesssteuersystem gehörenden Informationen von einerClientanwendung in einem Zwischendatenserverprozess zu empfangen;festzustellen, ob die Informationen in einer zu dem ZwischendatenserverprozessgehörendenDatenquelle gespeichert sind; eine Anforderung der Informationenvon dem Zwischendatenserverprozess zu einem anderen Prozess zu senden,wenn die Informationen nicht in der Datenquelle gespeichert sind;und auf die Datenbank zuzugreifen, um die Informationen auszulesen,nachdem der andere Prozess die Anforderung der Informationen empfangenhat. [21] Maschinenlesbares Medium nach Anspruch 18 mit daraufgespeicherten Befehlen, die dann, wenn sie ausgeführt werden,die Maschine veranlassen, die Anforderung der Informationen vonder Clientanwendung in dem Zwischendatenserverprozess zu empfangen,indem sie eine Anforderung von Daten und mindestens einer zu denDaten gehörenden Regelempfängt. [22] Maschinenlesbares Medium nach Anspruch 20 mit daraufgespeicherten Befehlen, die dann, wenn sie ausgeführt werden,die Maschine veranlassen, die Anforderung der Informationen vonder Clientanwendung in dem Zwischendatenserverprozess zu empfangen,indem sie eine Anforderung von Objektinformationen und/oder Regelnin einem Zwischendatenserverobjekt empfängt. [23] Maschinenlesbares Medium nach Anspruch 20 mit daraufgespeicherten Befehlen, die dann, wenn sie ausgeführt werden,die Maschine veranlassen, festzustellen, ob die Informationen inder Datenquelle gespeichert sind, indem sie eine hierarchisch inBeziehung stehende erste Menge von Objekten, die einer Teilmengeeiner zweiten Menge von Objekten entspricht, die in der Datenbankgespeichert sind, durchläuft. [24] Maschinenlesbares Medium nach Anspruch 23 mit daraufgespeicherten Befehlen, die dann, wenn sie ausgeführt werden,die Maschine veranlassen, die hierarchisch in Beziehung stehendeerste Menge von Objekten zu durchlaufen, indem sie die ein Clientrootobjektdurchläuft,das einem Status der Clientanwendung entspricht. [25] Maschinenlesbares Medium nach Anspruch 20 mit daraufgespeicherten Befehlen, die dann, wenn sie ausgeführt werden,die Maschine veranlassen, die Anforderung der Informationen vondem Zwischendatenserverprozess zu dem anderen Prozess zu senden,indem sie die Anforderung der Informationen über eine Datenbankverbindungund eine Kommunikationsverbindung sendet. [26] Maschinenlesbares Medium nach Anspruch 20 mit daraufgespeicherten Befehlen, die dann, wenn sie ausgeführt werden,die Maschine veranlassen, die Anforderung der Informationen über eine Sessionzu verarbeiten, die mit der Datenquelle und einer Datenbankverbindungin Kommunikationsverbindung steht. [27] Maschinenlesbares Medium nach Anspruch 20 mit daraufgespeicherten Befehlen, die dann, wenn sie ausgeführt werden,die Maschine veranlassen, auf die Datenbank zum Auslesen von zusätzlichenInformationen zuzugreifen, wobei die zusätzlichen Informationen zu einemDatenzugriffsmuster gehören,das fürdie Clientanwendung charakteristisch ist. [28] Prozesssteuersystem, enthaltend: eine Vielzahlvon in Kommunikationsverbindung stehenden Zwischendatenservern; eineVielzahl von Clientanwendungen, die in Kommunikation mit mindestenseinem der Zwischendatenserver stehen; und eine Informationenenthaltende Datenbank, die mindestens Daten und Regeln enthält, diezu dem Prozesssteuersystem gehören,wobei die Zwischendatenserver so ausgelegt sind, dass sie zusammenwirken,um eine Teilmenge der Informationen auszulesen und in jeweiligenlokalen Datenquellen zu speichern, und zwar basierend auf den Informationsbedürfnissenzumindest einiger der Clientanwendungen. [29] Prozesssteuersystem nach Anspruch 28, dadurch gekennzeichnet,dass jeder der Zwischendatenserver so ausgelegt ist, dass er einZwischendatenserverobjekt, einen Datenquellenobjekt, ein Datenbankverbindungsobjektund eine Sessionsobjekt bereitstellt, das die Aktivitäten desZwischendatenserverobjekts, des Datenquellenobjekts und des Datenbankverbindungsobjektskoordiniert. [30] Prozesssteuersystem nach Anspruch 28, dadurch gekennzeichnet,dass mindestens zwei der Zwischendatenserver über eine zu einem Netzwerk gehörende Kommunikationsverbindunggekoppelt sind. [31] Prozesssteuersystem nach Anspruch 30, dadurch gekennzeichnet,dass jedes der Objekte innerhalb der Hierarchie von Objekten einzugehöriges Objekt,Eigenschaften und eine Rolle enthält. [32] Prozesssteuersystem nach Anspruch 28, dadurch gekennzeichnet,dass die Zwischendatenserver so ausgelegt sind, dass sie unter Verwendungeiner Extensible Markup Language kommunizieren. [33] Prozesssteuersystem nach Anspruch 28, dadurch gekennzeichnet,dass die Clientanwendungen eine Browseranwendung enthalten. [34] Prozesssteuersystem nach Anspruch 28, dadurch gekennzeichnet,dass die Zwischendatenserver so ausgelegt sind, dass sie mindestenseinige der zu dem Prozesssteuersystem gehörenden Regeln ausführen. [35] Prozesssteuersystem nach Anspruch 28, dadurch gekennzeichnet,dass die Teilmenge der Informationen, die von jedem der Zwischendatenserver ausgelesenwird, Informationen enthält,die mit einer Datenzugriffscharakteristik des Zwischendatenserverskonsistent sind. [36] Verfahren zum Verändern von Informationen innerhalbeiner zu einem Prozesssteuersystem gehörenden Datenbank, enthaltend: Sendeneiner Menge von Informationen von einem ersten Zwischendatenserverzu einem zweiten Zwischendatenserver; Senden der Menge vonInformationen von dem zweiten Zwischendatenserver zu einem Datenbankserver;und Schreiben der Menge von Informationen an die Datenbank,um die Informationen innerhalb der Datenbank zu verändern. [37] Verfahren nach Anspruch 36, dadurch gekennzeichnet,dass der erste und der zweite Zwischendatenserver jeweils eine Datenquelle,eine Session und eine Datenbankverbindung enthalten. [38] Verfahren nach Anspruch 36, dadurch gekennzeichnet,dass die Menge der Informationen ein Dokument in Extensible MarkupLanguage enthält. [39] Verfahren nach Anspruch 36, dadurch gekennzeichnet,dass das Senden der Menge von Informationen von dem ersten Zwischendatenserverzu dem zweiten Zwischendatenserver das Senden der Menge von Informationen über eineKommunikationsverbindung einschließt. [40] Verfahren nach Anspruch 33, dadurch gekennzeichnet,dass die Menge von Informationen Informationen enthält, diezu einem Prozesssteuersystem und/oder einem Unternehmen gehören. [41] Verfahren zum Weiterleiten einer Datenbankänderunginnerhalb eines vernetzten Systems, enthaltend: Verändern einerInformationsmenge innerhalb einer Datenbank, um eine zweite Informationsmengezu bilden; Senden der zweiten Informationsmenge zu einem erstenZwischendatenserver innerhalb des vernetzten Systems; Sendender zweiten Informationsmenge von dem ersten Zwischendatenserverzu einem zweiten Zwischendatenserver; und Speichern mindestenseines Anteiles der zweiten Informationsmenge in einer Datenquelle,die zu einer Clientanwendung gehört. [42] Verfahren nach Anspruch 41, dadurch gekennzeichnet,dass das Senden der zweiten Informationsmenge von dem ersten Zwischendatenserverzu dem zweiten Zwischendatenserver das Senden eines Dokuments inExtensible Markup Language von dem ersten Zwischendatenserver zudem zweiten Zwischendatenserver einschließt. [43] Verfahren nach Anspruch 41, dadurch gekennzeichnet,dass das Speichern mindestens des Anteiles der zweiten Informationsmengein der zu der Clientanwendung gehörenden Datenquelle das Speichernvon Informationen einschließt,die zu den zuvor von der Datenquelle angeforderten Informationengehören. [44] Verfahren zum Zugreifen auf eine zu einem ProzesssteuersystemgehörendeDatenbank, enthaltend: Empfangen einer Anforderung von Datenund mindestens einer zu den Daten gehörenden Regel von einer Clientanwendungin einem Zwischendatenserverprozess; und Zugreifen auf dieDatenbank, um die Daten und die mindestens eine zu den Daten gehörende Regelauszulesen. [45] Verfahren nach Anspruch 44, ferner enthaltend dasDurchsetzen der mindestens einen Regel in Erwiderung auf eine Anforderung,mindestens einen Abschnitt der Daten zu verändern. [46] Verfahren nach Anspruch 44, dadurch gekennzeichnet,dass das Zugreifen auf die Datenbank die Kommunikation mit einemanderen Zwischendatenserverprozess einschließt, der mit der Datenbank gekoppeltist. [47] Verfahren zum Editieren einer Datenbank eines Prozesssteuersystems,enthaltend: Anfordern von im wesentlichen allen zu der Datenbankdes Prozesssteuersystems gehörendenDaten; Empfangen von den angeforderten, im wesentlichen allenzu der Datenbank des Prozesssteuersystems gehörenden Daten in einer Clientanwendung; Editierenmindestens einiger von den im wesentlichen allen zu der Datenbankdes Prozesssteuersystems gehörendenDaten in der Clientanwendung, währenddie Clientanwendung in Bezug auf die Datenbank des ProzesssteuersystemsOffline ist; und Durchsetzen mindestens einer zu der Datenbankdes Prozesssteuersystems gehörendenRegel, die von der Clientanwendung zugreifbar ist, während dieClientanwendung in Bezug auf die Datenbank des ProzesssteuersystemsOffline ist. [48] Verfahren nach Anspruch 47, ferner enthaltend dasAbstimmen mindestens einiger von den im wesentlichen allen Daten,die zu dem Prozesssteuersystem gehören, anschließend andas Editieren. [49] Verfahren nach Anspruch 47, dadurch gekennzeichnet,dass im wesentlichen die Gesamtheit der zu dem ProzesssteuersystemgehörendenDaten eine Kopie der Datenbank des Prozesssteuersystems enthalten.
类似技术:
公开号 | 公开日 | 专利标题 US9819733B2|2017-11-14|Peer-to-peer exchange of data resources in a control system US9195527B2|2015-11-24|System and method for processing messages using native data serialization/deserialization in a service-oriented pipeline architecture US8612406B1|2013-12-17|Sharing business data across networked applications US5892946A|1999-04-06|System and method for multi-site distributed object management environment DE69734189T2|2006-06-22|Verteiltes Netzwerkrechnersystem und Datenaustauschgerät JP4551899B2|2010-09-29|随時接続アプリケーションサーバー US7779089B2|2010-08-17|Method and system for remote configuration of process data access servers US8127035B1|2012-02-28|Distributed message engines and systems US7191021B2|2007-03-13|Remote management of field devices in a manufacturing plant CN1525318B|2010-05-05|移动式计算设备远程程序安装系统及方法 CN102854819B|2016-03-09|用于过程控制系统的面向服务的架构 US8122457B2|2012-02-21|System and method for facilitating the exchange of information among applications CA2717347C|2017-08-29|Web-based multiuser collaboration KR100328516B1|2002-11-27|SYSTEM AND METHOD FOR SETTING COMMUNICATION PROTOCOL BETWEEN APPLICATIONS US5995945A|1999-11-30|System and process for inter-domain planning analysis and optimization using model agents as partial replicas of remote domains US9594821B2|2017-03-14|Method and apparatus for synchronizing how data is stored in different data stores US5857201A|1999-01-05|Enterprise connectivity to handheld devices US5931900A|1999-08-03|System and process for inter-domain interaction across an inter-domain connectivity plane JP2874032B2|1999-03-24|ソフトウェア作業ツール US20150215386A1|2015-07-30|Management of data object sharing among applications US6941306B2|2005-09-06|Method and system for accessing data by using SOAP-XML Mascolo et al.2002|Xmiddle: A data-sharing middleware for mobile computing US6915330B2|2005-07-05|Web function blocks capable of exchanging HTTP type of messages in automation equipment US6222533B1|2001-04-24|System and process having a universal adapter framework and providing a global user interface and global messaging bus US6202099B1|2001-03-13|Method and apparatus for providing inter-application program communication using a common view and metadata
同族专利:
公开号 | 公开日 US20040177060A1|2004-09-09| JP5189724B2|2013-04-24| JP2004280813A|2004-10-07| GB2399197A|2004-09-08| GB0404760D0|2004-04-07| CN1527227A|2004-09-08| CN1527227B|2010-05-26| US7809679B2|2010-10-05|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
2011-03-17| 8110| Request for examination paragraph 44| 2016-05-30| R120| Application withdrawn or ip right abandoned|
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|